// utils/request.js
import { getToken, removeToken, removeUserId } from './storage';
// ✅ 修改为你的后端地址
const BASE_URL = 'http://localhost:8080';
// ✅ 通用请求方法
export function request(path, data = {}, method = 'GET') {

  const token = getToken()

  return new Promise((resolve, reject) => {
    wx.request({
      url: BASE_URL + path,
      data,
      method,
      header: {
        'Content-Type': 'application/json',
        // 若依后端默认用 Authorization: Bearer token
        ...(token ? { Authorization: `Bearer ${token}` } : {})
      },
      success(res) {
        // 若依未登录或 token 过期会返回 401
        if (res.statusCode === 401) {
          wx.showToast({
            title: '登录已过期，请重新登录',
            icon: 'none',
            duration: 1500
          });
          // 清空本地缓存
          removeToken();
          removeUserId();
          // 延迟跳转登录页
          setTimeout(() => {
            wx.redirectTo({ url: '/pages/login/login' });
          }, 1500);

          reject('未登录或登录已过期');
          return;
        }
        // 若依统一返回结构：{ code: 200, msg: '', data: {...} }
        if (res.data.code === 200) {
          resolve(res.data);
        } else {
          wx.showToast({
            title: res.data.msg || '请求失败',
            icon: 'none'
          });
          reject(res.data);
        }
      },
      fail(err) {
        wx.showToast({
          title: '网络错误，请稍后重试',
          icon: 'none'
        });
        reject(err);
      }
    });
  });
}
//使用方法
// // GET 请求
// request('/user/list', { page: 1, size: 10 })
//   .then(res => {
//     console.log('成功：', res);
//   })
//   .catch(err => {
//     console.error('失败：', err);
//   });

// // POST 请求
// request('/user/add', { name: '张三', age: 20 }, 'POST')
//   .then(res => console.log(res));
// Page({
//   onLoad() {
//     // 调用封装好的请求
//     request('/user/info', {}, 'GET')
//       .then(res => {
//         console.log('用户信息：', res.data);
//         this.setData({
//           userInfo: res.data
//         });
//       })
//       .catch(err => {
//         console.error('请求失败：', err);
//       });
//   }
// });
// wx.request({
//   url: 'http://localhost:8080/user/info',
//   method: 'GET',
//   header: { Authorization: 'Bearer token' }
// })
// Page({
//   data: {
//     phone: '',
//     code: ''
//   },

//   // 点击登录按钮
//   handleLogin() {
//     request('/login/phone', {
//       phone: this.data.phone,
//       code: this.data.code
//     }, 'POST')
//     .then(res => {
//       // 后端返回 { code:200, data:{ token:'xxx', userId:123 } }
//       const { token, userId } = res.data;

//       setToken(token);
//       setUserId(userId);

//       wx.showToast({ title: '登录成功', icon: 'success' });

//       wx.redirectTo({ url: '/pages/home/home' });
//     })
//     .catch(err => {
//       console.error('登录失败：', err);
//     });
//   }
// })
// request('/book/list', { category: 'IT' })
//   .then(res => {
//     console.log('书籍列表', res.data);
//   })
//   .catch(err => {
//     console.error('请求失败', err);
//   });